package com.hc.programming.string;

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

/**
 * 扑克牌游戏大家应该都比较熟悉了，一副牌由54张组成，含3~A，2各4张，小王1张，大王1张。牌面从小到大用如下字符和字符串表示（其中，小写joker表示小王，大写JOKER表示大王）:)
 * 3 4 5 6 7 8 9 10 J Q K A 2 joker JOKER
 * 输入两手牌，两手牌之间用“-”连接，每手牌的每张牌以空格分隔，“-”两边没有空格，如：4 4 4 4-joker JOKER
 * 请比较两手牌大小，输出较大的牌，如果不存在比较关系则输出ERROR
 * <p>
 * 基本规则：
 * （1）输入每手牌可能是个子，对子，顺子（连续5张），三个，炸弹（四个）和对王中的一种，不存在其他情况，由输入保证两手牌都是合法的，顺子已经从小到大排列；
 * （2）除了炸弹和对王可以和所有牌比较之外，其他类型的牌只能跟相同类型的存在比较关系（如，对子跟对子比较，三个跟三个比较），不考虑拆牌情况（如：将对子拆分成个子）
 * （3）大小规则跟大家平时了解的常见规则相同，个子，对子，三个比较牌面大小；顺子比较最小牌大小；炸弹大于前面所有的牌，炸弹之间比较牌面大小；对王是最大的牌；
 * （4）输入的两手牌不会出现相等的情况。
 * <p>
 * 答案提示：
 * （1）除了炸弹和对王之外，其他必须同类型比较。
 * （2）输入已经保证合法性，不用检查输入是否是合法的牌。
 * （3）输入的顺子已经经过从小到大排序，因此不用再排序了.
 * <p>
 * 数据范围：保证输入合法
 * 时间限制：C/C++ 10秒，其他语言20秒
 * 空间限制：C/C++ 128M，其他语言256M
 * 输入描述：
 * 输入两手牌，两手牌之间用“-”连接，每手牌的每张牌以空格分隔，“-”两边没有空格，如4 4 4 4-joker JOKER。
 * 输出描述：
 * 输出两手牌中较大的那手，不含连接符，扑克牌顺序不变，仍以空格隔开；如果不存在比较关系则输出ERROR。
 * 示例1
 * 输入例子：
 * 4 4 4 4-joker JOKER
 * 输出例子：
 * joker JOKER
 *
 * @author huangchao E-mail:fengquan8866@163.com
 * @version 创建时间：2024/6/24 22:40
 */
public class 扑克牌大小 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        Map<String, Integer> map = new HashMap<String, Integer>() {{
            put("3", 1);
            put("4", 2);
            put("5", 3);
            put("6", 4);
            put("7", 5);
            put("8", 6);
            put("9", 7);
            put("10", 8);
            put("J", 9);
            put("Q", 10);
            put("K", 11);
            put("A", 12);
            put("2", 13);
            put("joker", 14);
            put("JOKER", 15);
        }};
        while (in.hasNextLine()) {
            String line = in.nextLine();
            String[] split = line.split("-");
            String[] s1 = split[0].split(" ");
            String[] s2 = split[1].split(" ");
            if (s1.length == s2.length) { // 对等的牌
                if (map.get(s1[0]) < map.get(s2[0])) {
                    System.out.println(split[1]);
                } else {
                    System.out.println(split[0]);
                }
            } else { // 不对等的牌
                if (s1.length == 2 && "joker".equals(s1[0])) {
                    System.out.println(split[0]);
                } else if (s2.length == 2 && "joker".equals(s2[0])) {
                    System.out.println(split[1]);
                } else if (s1.length == 4) {
                    System.out.println(split[0]);
                } else if (s2.length == 4) {
                    System.out.println(split[1]);
                } else {
                    System.out.println("ERROR");
                }
            }
        }
    }
}
